﻿using System;
using System.Collections.Generic;

namespace SharpSqlAnalyzer.nodes
{
	// Token: 0x02000367 RID: 871
	public class TTypeName : TParseTreeNode
	{
		// Token: 0x170007AF RID: 1967
		// (get) Token: 0x0600240B RID: 9227 RVA: 0x0033815D File Offset: 0x0033635D
		// (set) Token: 0x0600240C RID: 9228 RVA: 0x00338165 File Offset: 0x00336365
		public TSourceToken charUnitToken
		{
			get
			{
				return this._charUnitToken;
			}
			set
			{
				this._charUnitToken = value;
			}
		}

		// Token: 0x170007B0 RID: 1968
		// (get) Token: 0x0600240D RID: 9229 RVA: 0x0033816E File Offset: 0x0033636E
		// (set) Token: 0x0600240E RID: 9230 RVA: 0x00338176 File Offset: 0x00336376
		public TSourceToken zeroFillToken
		{
			get
			{
				return this._zeroFillToken;
			}
			set
			{
				this._zeroFillToken = value;
			}
		}

		// Token: 0x170007B1 RID: 1969
		// (get) Token: 0x0600240F RID: 9231 RVA: 0x0033817F File Offset: 0x0033637F
		// (set) Token: 0x06002410 RID: 9232 RVA: 0x00338187 File Offset: 0x00336387
		public TSourceToken signedToken
		{
			get
			{
				return this._signedToken;
			}
			set
			{
				this._signedToken = value;
			}
		}

		// Token: 0x06002411 RID: 9233 RVA: 0x00338190 File Offset: 0x00336390
		public void setTypeModifiers(TExpressionList l)
		{
			this.TypeModifiers = l;
		}

		// Token: 0x06002412 RID: 9234 RVA: 0x00338199 File Offset: 0x00336399
		public void setDataTypeByToken(TSourceToken st)
		{
			this.DataTypeByToken = st;
		}

		// Token: 0x06002413 RID: 9235 RVA: 0x003381A2 File Offset: 0x003363A2
		public void setArrays(List<TIndices> l)
		{
			this.arrays = l;
		}

		// Token: 0x06002414 RID: 9236 RVA: 0x003381AB File Offset: 0x003363AB
		public void setType(int t)
		{
			this.type = t;
		}

		// Token: 0x06002415 RID: 9237 RVA: 0x003381B4 File Offset: 0x003363B4
		public virtual bool isCharUnit()
		{
			return this.charUnit;
		}

		// Token: 0x170007B2 RID: 1970
		// (get) Token: 0x06002416 RID: 9238 RVA: 0x003381BC File Offset: 0x003363BC
		public virtual bool ByteUnit
		{
			get
			{
				return this.byteUnit;
			}
		}

		// Token: 0x06002417 RID: 9239 RVA: 0x003381C4 File Offset: 0x003363C4
		public virtual bool isVarying()
		{
			return this.varying;
		}

		// Token: 0x06002418 RID: 9240 RVA: 0x003381CC File Offset: 0x003363CC
		public static EDataType searchTypeByName(string typenameStr)
		{
			EDataType result = EDataType.unknown_t;
			if (!TTypeName.dataTypeMap.TryGetValue(typenameStr.ToLower(), out result))
			{
				result = EDataType.unknown_t;
			}
			return result;
		}

		// Token: 0x170007B3 RID: 1971
		// (set) Token: 0x06002419 RID: 9241 RVA: 0x003381F2 File Offset: 0x003363F2
		public virtual TDummy CharsetAndCollation
		{
			set
			{
				if (value == null)
				{
					return;
				}
				if (value.node1 != null)
				{
					this.charsetName = value.node1.ToString();
				}
				if (value.node2 != null)
				{
					this.collationName = value.node2.ToString();
				}
			}
		}

		// Token: 0x170007B4 RID: 1972
		// (set) Token: 0x0600241A RID: 9242 RVA: 0x0033822A File Offset: 0x0033642A
		public virtual TSourceToken CharsetNameByToken
		{
			set
			{
				if (value == null)
				{
					return;
				}
				this.charsetName = value.ToString();
			}
		}

		// Token: 0x170007B5 RID: 1973
		// (get) Token: 0x0600241C RID: 9244 RVA: 0x00338245 File Offset: 0x00336445
		// (set) Token: 0x0600241B RID: 9243 RVA: 0x0033823C File Offset: 0x0033643C
		public virtual string CharsetName
		{
			get
			{
				return this.charsetName;
			}
			set
			{
				this.charsetName = value;
			}
		}

		// Token: 0x170007B6 RID: 1974
		// (get) Token: 0x0600241E RID: 9246 RVA: 0x00338256 File Offset: 0x00336456
		// (set) Token: 0x0600241D RID: 9245 RVA: 0x0033824D File Offset: 0x0033644D
		public virtual string CollationName
		{
			get
			{
				return this.collationName;
			}
			set
			{
				this.collationName = value;
			}
		}

		// Token: 0x170007B7 RID: 1975
		// (get) Token: 0x06002420 RID: 9248 RVA: 0x00338267 File Offset: 0x00336467
		// (set) Token: 0x0600241F RID: 9247 RVA: 0x0033825E File Offset: 0x0033645E
		public virtual List<TTypeName> ColTypeList
		{
			get
			{
				return this.colTypeList;
			}
			set
			{
				this.colTypeList = value;
			}
		}

		// Token: 0x170007B8 RID: 1976
		// (get) Token: 0x06002422 RID: 9250 RVA: 0x00338278 File Offset: 0x00336478
		// (set) Token: 0x06002421 RID: 9249 RVA: 0x0033826F File Offset: 0x0033646F
		public virtual TColumnDefinitionList ColumnDefList
		{
			get
			{
				return this.columnDefList;
			}
			set
			{
				this.columnDefList = value;
			}
		}

		// Token: 0x170007B9 RID: 1977
		// (get) Token: 0x06002424 RID: 9252 RVA: 0x00338289 File Offset: 0x00336489
		// (set) Token: 0x06002423 RID: 9251 RVA: 0x00338280 File Offset: 0x00336480
		public virtual TTypeName TypeOfMap
		{
			get
			{
				return this.typeOfMap;
			}
			set
			{
				this.typeOfMap = value;
			}
		}

		// Token: 0x170007BA RID: 1978
		// (get) Token: 0x06002426 RID: 9254 RVA: 0x0033829A File Offset: 0x0033649A
		// (set) Token: 0x06002425 RID: 9253 RVA: 0x00338291 File Offset: 0x00336491
		public virtual TTypeName PrimitiveTypeOfMap
		{
			get
			{
				return this.primitiveTypeOfMap;
			}
			set
			{
				this.primitiveTypeOfMap = value;
			}
		}

		// Token: 0x170007BB RID: 1979
		// (get) Token: 0x06002428 RID: 9256 RVA: 0x003382AB File Offset: 0x003364AB
		// (set) Token: 0x06002427 RID: 9255 RVA: 0x003382A2 File Offset: 0x003364A2
		public virtual TTypeName TypeOfList
		{
			get
			{
				return this.typeOfList;
			}
			set
			{
				this.typeOfList = value;
			}
		}

		// Token: 0x170007BC RID: 1980
		// (set) Token: 0x06002429 RID: 9257 RVA: 0x003382B4 File Offset: 0x003364B4
		public virtual TObjectName DataTypeByObjectName
		{
			set
			{
				if (value == null)
				{
					return;
				}
				this.dataTypeObjectName = value;
				EDataType edataType = TTypeName.searchTypeByName(TBaseType.getTextWithoutQuoted(value.ToString()));
				if (edataType != EDataType.unknown_t)
				{
					this.dataType = edataType;
					return;
				}
				if (this.dataType == EDataType.generic_t)
				{
					this._dataTypeName = value.ToString();
				}
			}
		}

		// Token: 0x170007BD RID: 1981
		// (set) Token: 0x0600242A RID: 9258 RVA: 0x00338300 File Offset: 0x00336500
		public virtual TSourceToken DataTypeByToken
		{
			set
			{
				if (value == null)
				{
					return;
				}
				EDataType edataType = TTypeName.searchTypeByName(value.TextWithoutQuoted);
				if (edataType != EDataType.unknown_t)
				{
					this.dataType = edataType;
					return;
				}
				if (this.dataType == EDataType.generic_t)
				{
					this._dataTypeName = value.ToString();
				}
			}
		}

		// Token: 0x170007BE RID: 1982
		// (get) Token: 0x0600242B RID: 9259 RVA: 0x0033833D File Offset: 0x0033653D
		public virtual TObjectName DataTypeObjectName
		{
			get
			{
				return this.dataTypeObjectName;
			}
		}

		// Token: 0x170007BF RID: 1983
		// (get) Token: 0x0600242C RID: 9260 RVA: 0x00338348 File Offset: 0x00336548
		public virtual string DataTypeName
		{
			get
			{
				this._dataTypeName = null;
				EDataType edataType = this.dataType;
				if (edataType <= EDataType.interval_day_to_second_t)
				{
					if (edataType <= EDataType.binary_float_t)
					{
						if (edataType != EDataType.generic_t)
						{
							if (edataType == EDataType.binary_float_t)
							{
								this._dataTypeName = "binary float";
							}
						}
						else
						{
							this._dataTypeName = base.startToken.ToString();
						}
					}
					else if (edataType != EDataType.binary_double_t)
					{
						if (edataType == EDataType.interval_day_to_second_t)
						{
							this._dataTypeName = "interval day";
						}
					}
					else
					{
						this._dataTypeName = "binary double";
					}
				}
				else if (edataType <= EDataType.long_raw_t)
				{
					if (edataType != EDataType.interval_year_to_month_t)
					{
						if (edataType == EDataType.long_raw_t)
						{
							this._dataTypeName = "long raw";
						}
					}
					else
					{
						this._dataTypeName = "interval year";
					}
				}
				else if (edataType - EDataType.timestamp_with_local_time_zone_t > 1)
				{
					if (edataType != EDataType.double_precision_t)
					{
						if (edataType == EDataType.unsigned_int_t)
						{
							this._dataTypeName = "unsigned int";
						}
					}
					else
					{
						this._dataTypeName = "double precision";
					}
				}
				else
				{
					this._dataTypeName = "timestamp";
				}
				if (this._dataTypeName != null)
				{
					return this._dataTypeName;
				}
				string text = this.DataType.ToString();
				if (text.EndsWith("_t"))
				{
					this._dataTypeName = text.Substring(0, text.Length - 2);
				}
				return this._dataTypeName;
			}
		}

		// Token: 0x170007C0 RID: 1984
		// (get) Token: 0x0600242E RID: 9262 RVA: 0x00338488 File Offset: 0x00336688
		// (set) Token: 0x0600242D RID: 9261 RVA: 0x0033847F File Offset: 0x0033667F
		public virtual EDataType DataType
		{
			get
			{
				return this.dataType;
			}
			set
			{
				this.dataType = value;
			}
		}

		// Token: 0x170007C1 RID: 1985
		// (get) Token: 0x06002430 RID: 9264 RVA: 0x00338499 File Offset: 0x00336699
		// (set) Token: 0x0600242F RID: 9263 RVA: 0x00338490 File Offset: 0x00336690
		public virtual TConstant Start
		{
			get
			{
				return this.start;
			}
			set
			{
				this.start = value;
			}
		}

		// Token: 0x170007C2 RID: 1986
		// (get) Token: 0x06002432 RID: 9266 RVA: 0x003384AA File Offset: 0x003366AA
		// (set) Token: 0x06002431 RID: 9265 RVA: 0x003384A1 File Offset: 0x003366A1
		public virtual TConstant Max
		{
			get
			{
				return this.Max_Renamed;
			}
			set
			{
				this.Max_Renamed = value;
			}
		}

		// Token: 0x170007C3 RID: 1987
		// (get) Token: 0x06002434 RID: 9268 RVA: 0x003384BB File Offset: 0x003366BB
		// (set) Token: 0x06002433 RID: 9267 RVA: 0x003384B2 File Offset: 0x003366B2
		public virtual TConstant Reserve
		{
			get
			{
				return this.Reserve_Renamed;
			}
			set
			{
				this.Reserve_Renamed = value;
			}
		}

		// Token: 0x170007C4 RID: 1988
		// (get) Token: 0x06002436 RID: 9270 RVA: 0x003384CC File Offset: 0x003366CC
		// (set) Token: 0x06002435 RID: 9269 RVA: 0x003384C3 File Offset: 0x003366C3
		public virtual TConstant Length
		{
			get
			{
				return this.length;
			}
			set
			{
				this.length = value;
			}
		}

		// Token: 0x170007C5 RID: 1989
		// (get) Token: 0x06002437 RID: 9271 RVA: 0x003384D4 File Offset: 0x003366D4
		public virtual TConstant SecondsPrecision
		{
			get
			{
				return this.secondsPrecision;
			}
		}

		// Token: 0x170007C6 RID: 1990
		// (get) Token: 0x06002439 RID: 9273 RVA: 0x003384E5 File Offset: 0x003366E5
		// (set) Token: 0x06002438 RID: 9272 RVA: 0x003384DC File Offset: 0x003366DC
		public virtual TConstant Precision
		{
			get
			{
				return this.precision;
			}
			set
			{
				this.precision = value;
			}
		}

		// Token: 0x170007C7 RID: 1991
		// (get) Token: 0x0600243A RID: 9274 RVA: 0x003384ED File Offset: 0x003366ED
		// (set) Token: 0x0600243B RID: 9275 RVA: 0x003384F5 File Offset: 0x003366F5
		public virtual TConstant Scale
		{
			get
			{
				return this.scale;
			}
			set
			{
				this.scale = value;
			}
		}

		// Token: 0x170007C8 RID: 1992
		// (set) Token: 0x0600243C RID: 9276 RVA: 0x003384FE File Offset: 0x003366FE
		public virtual TPrecisionScale PrecisionScale
		{
			set
			{
				if (value != null)
				{
					this.precision = value.Precision;
					this.scale = value.Scale;
				}
			}
		}

		// Token: 0x170007C9 RID: 1993
		// (get) Token: 0x0600243D RID: 9277 RVA: 0x0033851B File Offset: 0x0033671B
		// (set) Token: 0x0600243E RID: 9278 RVA: 0x00338523 File Offset: 0x00336723
		public virtual List<TIndices> Arrays
		{
			get
			{
				return this.arrays;
			}
			set
			{
				this.arrays = value;
			}
		}

		// Token: 0x170007CA RID: 1994
		// (get) Token: 0x06002440 RID: 9280 RVA: 0x00338535 File Offset: 0x00336735
		// (set) Token: 0x0600243F RID: 9279 RVA: 0x0033852C File Offset: 0x0033672C
		public virtual List<TDatatypeAttribute> DatatypeAttributeList
		{
			get
			{
				if (this.datatypeAttributeList == null)
				{
					this.datatypeAttributeList = new List<TDatatypeAttribute>();
				}
				return this.datatypeAttributeList;
			}
			set
			{
				this.datatypeAttributeList = value;
			}
		}

		// Token: 0x06002441 RID: 9281 RVA: 0x00338550 File Offset: 0x00336750
		public override void init(object arg1, object arg2, object arg3)
		{
			this.init(arg1, arg2);
			if (arg3 != null)
			{
				EDataType edataType = this.dataType;
				if (edataType != EDataType.interval_day_to_second_t)
				{
					switch (edataType)
					{
					case EDataType.interval_hour_to_second_t:
					case EDataType.interval_minute_to_second_t:
					case EDataType.interval_second_t:
						break;
					case EDataType.interval_minute_t:
					case EDataType.interval_month_t:
					case EDataType.interval_year_t:
					case EDataType.interval_year_to_month_t:
						return;
					default:
						return;
					}
				}
				this.secondsPrecision = (TConstant)arg3;
			}
		}

		// Token: 0x170007CB RID: 1995
		// (set) Token: 0x06002442 RID: 9282 RVA: 0x003385A8 File Offset: 0x003367A8
		public virtual TExpressionList TypeModifiers
		{
			set
			{
				if (value == null)
				{
					return;
				}
				if (value.size() == 1)
				{
					TExpression expression = value.getExpression(0);
					if (expression.ExpressionType == EExpressionType.simple_constant_t)
					{
						this.precision = expression.ConstantOperand;
						return;
					}
				}
				else if (value.size() == 2)
				{
					TExpression expression2 = value.getExpression(0);
					if (expression2.ExpressionType == EExpressionType.simple_constant_t)
					{
						this.precision = expression2.ConstantOperand;
					}
					TExpression expression3 = value.getExpression(1);
					if (expression3.ExpressionType == EExpressionType.simple_constant_t)
					{
						this.scale = expression3.ConstantOperand;
					}
				}
			}
		}

		// Token: 0x06002443 RID: 9283 RVA: 0x00338624 File Offset: 0x00336824
		public override void init(object arg1, object arg2)
		{
			this.init(arg1);
			if (arg2 != null)
			{
				if (arg2 is TPrecisionScale)
				{
					this.precision = ((TPrecisionScale)arg2).Precision;
					this.scale = ((TPrecisionScale)arg2).Scale;
					if (this.dataType == EDataType.period_t)
					{
						this.secondsPrecision = ((TPrecisionScale)arg2).Precision;
					}
				}
				else if (arg2 is TDummy)
				{
					this.length = (TConstant)((TDummy)arg2).node1;
				}
				else if (arg2 is TConstant)
				{
					this.length = (TConstant)arg2;
				}
				EDataType edataType = this.dataType;
				if (edataType - EDataType.interval_day_to_hour_t <= 5 || edataType - EDataType.interval_minute_to_second_t <= 4)
				{
					this.precision = (TConstant)arg2;
					this.length = null;
				}
			}
		}

		// Token: 0x06002444 RID: 9284 RVA: 0x003386E1 File Offset: 0x003368E1
		public override void init(object arg1)
		{
			this.dataType = (EDataType)arg1;
		}

		// Token: 0x06002445 RID: 9285 RVA: 0x003386EF File Offset: 0x003368EF
		public virtual void setCharUnit(TSourceToken st)
		{
			if (st == null)
			{
				return;
			}
			if (st.tokencode == 379)
			{
				this.charUnit = true;
				return;
			}
			this.byteUnit = true;
		}

		// Token: 0x06002446 RID: 9286 RVA: 0x00338714 File Offset: 0x00336914
		public virtual void setVarying(TSourceToken st)
		{
			if (st != null)
			{
				this.varying = true;
				EDataType edataType = this.dataType;
				if (edataType != EDataType.bit_t)
				{
					if (edataType == EDataType.char_t)
					{
						this.dataType = EDataType.varchar_t;
						return;
					}
					if (edataType != EDataType.nchar_t)
					{
						return;
					}
					this.dataType = EDataType.nvarchar_t;
					return;
				}
				else
				{
					this.dataType = EDataType.varbit_t;
				}
			}
		}

		// Token: 0x06002447 RID: 9287 RVA: 0x0033875C File Offset: 0x0033695C
		public virtual void setDataTypeInTokens()
		{
			if (base.startToken == null)
			{
				return;
			}
			if (base.endToken == null)
			{
				return;
			}
			TSourceTokenList container = base.startToken.container;
			int num = 0;
			for (int i = base.startToken.posinlist; i <= base.endToken.posinlist; i++)
			{
				TSourceToken tsourceToken = container.get(i);
				if (tsourceToken.tokentype == ETokenType.ttleftparenthesis)
				{
					num++;
				}
				else if (tsourceToken.tokentype == ETokenType.ttrightparenthesis)
				{
					num--;
				}
				else if (num == 0)
				{
					tsourceToken.DbObjType = EDbObjectType.datatype;
				}
			}
			if (this.type == 3 || this.dataType == EDataType.generic_t)
			{
				this.DataTypeByToken = base.startToken;
			}
		}

		// Token: 0x06002448 RID: 9288 RVA: 0x003387FC File Offset: 0x003369FC
		public override void accept(TParseTreeVisitor v)
		{
			v.preVisit(this);
			v.postVisit(this);
		}

		// Token: 0x06002449 RID: 9289 RVA: 0x0033880C File Offset: 0x00336A0C
		public override void acceptChildren(TParseTreeVisitor v)
		{
			v.preVisit(this);
			v.postVisit(this);
		}

		// Token: 0x170007CC RID: 1996
		// (get) Token: 0x0600244B RID: 9291 RVA: 0x00338825 File Offset: 0x00336A25
		// (set) Token: 0x0600244A RID: 9290 RVA: 0x0033881C File Offset: 0x00336A1C
		public virtual int Type
		{
			get
			{
				return this.type;
			}
			set
			{
				this.type = value;
			}
		}

		// Token: 0x04001BF7 RID: 7159
		private TSourceToken _charUnitToken;

		// Token: 0x04001BF8 RID: 7160
		private TSourceToken _zeroFillToken;

		// Token: 0x04001BF9 RID: 7161
		private TSourceToken _signedToken;

		// Token: 0x04001BFA RID: 7162
		private bool byteUnit;

		// Token: 0x04001BFB RID: 7163
		private bool charUnit;

		// Token: 0x04001BFC RID: 7164
		private bool varying;

		// Token: 0x04001BFD RID: 7165
		private static IDictionary<string, EDataType> dataTypeMap = new Dictionary<string, EDataType>
		{
			{
				"bfile",
				EDataType.bfile_t
			},
			{
				"bigint",
				EDataType.bigint_t
			},
			{
				"bigserial",
				EDataType.bigserial_t
			},
			{
				"binary",
				EDataType.binary_t
			},
			{
				"bit",
				EDataType.bit_t
			},
			{
				"blob",
				EDataType.blob_t
			},
			{
				"boolean",
				EDataType.boolean_t
			},
			{
				"byte",
				EDataType.byte_t
			},
			{
				"bytea",
				EDataType.bytea_t
			},
			{
				"byteint",
				EDataType.byteint_t
			},
			{
				"char",
				EDataType.char_t
			},
			{
				"character",
				EDataType.char_t
			},
			{
				"clob",
				EDataType.clob_t
			},
			{
				"date",
				EDataType.date_t
			},
			{
				"datetime",
				EDataType.datetime_t
			},
			{
				"dec",
				EDataType.dec_t
			},
			{
				"decimal",
				EDataType.dec_t
			},
			{
				"double",
				EDataType.double_precision_t
			},
			{
				"double_precision",
				EDataType.double_precision_t
			},
			{
				"float",
				EDataType.float_t
			},
			{
				"geometry",
				EDataType.geometry_t
			},
			{
				"geography",
				EDataType.geography_t
			},
			{
				"int",
				EDataType.int_t
			},
			{
				"integer",
				EDataType.int_t
			},
			{
				"interval",
				EDataType.interval_t
			},
			{
				"long",
				EDataType.long_t
			},
			{
				"long_raw",
				EDataType.long_raw_t
			},
			{
				"money",
				EDataType.money_t
			},
			{
				"nchar",
				EDataType.nchar_t
			},
			{
				"nclob",
				EDataType.nclob_t
			},
			{
				"number",
				EDataType.number_t
			},
			{
				"numeric",
				EDataType.numeric_t
			},
			{
				"nvarchar",
				EDataType.nvarchar_t
			},
			{
				"period",
				EDataType.period_t
			},
			{
				"real",
				EDataType.real_t
			},
			{
				"refcursor",
				EDataType.refcursor_t
			},
			{
				"rowid",
				EDataType.rowid_t
			},
			{
				"serial",
				EDataType.serial_t
			},
			{
				"signtype",
				EDataType.signtype_t
			},
			{
				"simple_integer",
				EDataType.simple_integer_t
			},
			{
				"smallint",
				EDataType.smallint_t
			},
			{
				"string",
				EDataType.string_t
			},
			{
				"text",
				EDataType.text_t
			},
			{
				"time",
				EDataType.time_t
			},
			{
				"timestamp",
				EDataType.timestamp_t
			},
			{
				"tinyint",
				EDataType.tinyint_t
			},
			{
				"varbinary",
				EDataType.varbinary_t
			},
			{
				"varbyte",
				EDataType.varbyte_t
			},
			{
				"varchar",
				EDataType.varchar_t
			}
		};

		// Token: 0x04001BFE RID: 7166
		private string charsetName;

		// Token: 0x04001BFF RID: 7167
		private string collationName;

		// Token: 0x04001C00 RID: 7168
		private TColumnDefinitionList columnDefList;

		// Token: 0x04001C01 RID: 7169
		private TTypeName typeOfList;

		// Token: 0x04001C02 RID: 7170
		private TTypeName primitiveTypeOfMap;

		// Token: 0x04001C03 RID: 7171
		private TTypeName typeOfMap;

		// Token: 0x04001C04 RID: 7172
		private List<TTypeName> colTypeList;

		// Token: 0x04001C05 RID: 7173
		private string _dataTypeName;

		// Token: 0x04001C06 RID: 7174
		private TObjectName dataTypeObjectName;

		// Token: 0x04001C07 RID: 7175
		private EDataType dataType;

		// Token: 0x04001C08 RID: 7176
		private TConstant start;

		// Token: 0x04001C09 RID: 7177
		private TConstant Max_Renamed;

		// Token: 0x04001C0A RID: 7178
		private TConstant Reserve_Renamed;

		// Token: 0x04001C0B RID: 7179
		private TConstant length;

		// Token: 0x04001C0C RID: 7180
		private TConstant precision;

		// Token: 0x04001C0D RID: 7181
		private TConstant scale;

		// Token: 0x04001C0E RID: 7182
		private TConstant secondsPrecision;

		// Token: 0x04001C0F RID: 7183
		private List<TIndices> arrays;

		// Token: 0x04001C10 RID: 7184
		private List<TDatatypeAttribute> datatypeAttributeList;

		// Token: 0x04001C11 RID: 7185
		private int type = 2;

		// Token: 0x04001C12 RID: 7186
		public const int lfdUnknown = 2;

		// Token: 0x04001C13 RID: 7187
		public const int lfdGeneric = 3;

		// Token: 0x04001C14 RID: 7188
		public const int lfdFloat = 4;

		// Token: 0x04001C15 RID: 7189
		public const int lfdDoublePrecision = 8;

		// Token: 0x04001C16 RID: 7190
		public const int lfdDecimal = 9;

		// Token: 0x04001C17 RID: 7191
		public const int lfdDec = 10;

		// Token: 0x04001C18 RID: 7192
		public const int lfdNumeric = 11;

		// Token: 0x04001C19 RID: 7193
		public const int lfdnumber = 12;

		// Token: 0x04001C1A RID: 7194
		public const int lfdNum = 13;

		// Token: 0x04001C1B RID: 7195
		public const int lfdInteger = 14;

		// Token: 0x04001C1C RID: 7196
		public const int lfdBit = 22;

		// Token: 0x04001C1D RID: 7197
		public const int lfdBoolean = 23;

		// Token: 0x04001C1E RID: 7198
		public const int lfdVarbinary = 33;

		// Token: 0x04001C1F RID: 7199
		public const int lfdBinary = 34;

		// Token: 0x04001C20 RID: 7200
		public const int lfdInt = 40;

		// Token: 0x04001C21 RID: 7201
		public const int lfdSmallint = 41;

		// Token: 0x04001C22 RID: 7202
		public const int lfdReal = 42;

		// Token: 0x04001C23 RID: 7203
		public const int lfdTinyInt = 43;

		// Token: 0x04001C24 RID: 7204
		public const int lfdBigInt = 45;

		// Token: 0x04001C25 RID: 7205
		public const int lfdCharacter = 46;

		// Token: 0x04001C26 RID: 7206
		public const int lfdChar = 47;

		// Token: 0x04001C27 RID: 7207
		public const int lfdVarchar = 48;

		// Token: 0x04001C28 RID: 7208
		public const int lfdVarchar2 = 49;

		// Token: 0x04001C29 RID: 7209
		public const int lfdLongvarchar = 56;

		// Token: 0x04001C2A RID: 7210
		public const int lfdLongvarbinary = 57;

		// Token: 0x04001C2B RID: 7211
		public const int lfdYear = 59;

		// Token: 0x04001C2C RID: 7212
		public const int lfdNationalChar = 61;

		// Token: 0x04001C2D RID: 7213
		public const int lfdNchar = 62;

		// Token: 0x04001C2E RID: 7214
		public const int lfdDate = 63;

		// Token: 0x04001C2F RID: 7215
		public const int lfdTimestamp = 64;

		// Token: 0x04001C30 RID: 7216
		public const int lfdTimeStampWithTZ = 65;

		// Token: 0x04001C31 RID: 7217
		public const int lfdTimeStampWithLTZ = 66;

		// Token: 0x04001C32 RID: 7218
		public const int lfdTime = 68;

		// Token: 0x04001C33 RID: 7219
		public const int lfdDatetime = 69;

		// Token: 0x04001C34 RID: 7220
		public const int lfdIntervalYTM = 71;

		// Token: 0x04001C35 RID: 7221
		public const int lfdIntervalDTS = 72;

		// Token: 0x04001C36 RID: 7222
		public const int lfdLong = 73;

		// Token: 0x04001C37 RID: 7223
		public const int lfdRaw = 74;

		// Token: 0x04001C38 RID: 7224
		public const int lfdLongRaw = 75;

		// Token: 0x04001C39 RID: 7225
		public const int lfdBlob = 76;

		// Token: 0x04001C3A RID: 7226
		public const int lfdClob = 77;

		// Token: 0x04001C3B RID: 7227
		public const int lfdNClob = 78;

		// Token: 0x04001C3C RID: 7228
		public const int lfdBfile = 79;

		// Token: 0x04001C3D RID: 7229
		public const int lfdTinyblob = 81;

		// Token: 0x04001C3E RID: 7230
		public const int lfdMediumblob = 82;

		// Token: 0x04001C3F RID: 7231
		public const int lfdLongblob = 83;

		// Token: 0x04001C40 RID: 7232
		public const int lfdTinytext = 84;

		// Token: 0x04001C41 RID: 7233
		public const int lfdText = 85;

		// Token: 0x04001C42 RID: 7234
		public const int lfdntext = 86;

		// Token: 0x04001C43 RID: 7235
		public const int lfdMediumtext = 88;

		// Token: 0x04001C44 RID: 7236
		public const int lfdLongtext = 89;

		// Token: 0x04001C45 RID: 7237
		public const int lfdURowid = 90;

		// Token: 0x04001C46 RID: 7238
		public const int lfdEnum = 91;

		// Token: 0x04001C47 RID: 7239
		public const int lfdBinaryLargeObject = 102;

		// Token: 0x04001C48 RID: 7240
		public const int lfdGraphic = 103;

		// Token: 0x04001C49 RID: 7241
		public const int lfdVarGraphic = 104;

		// Token: 0x04001C4A RID: 7242
		public const int lfdLongVarGraphic = 105;

		// Token: 0x04001C4B RID: 7243
		public const int lfdDatalink = 106;

		// Token: 0x04001C4C RID: 7244
		public const int lfdBinaryInteger = 107;

		// Token: 0x04001C4D RID: 7245
		public const int lfdPlsInteger = 108;

		// Token: 0x04001C4E RID: 7246
		public const int lfdByteint = 120;

		// Token: 0x04001C4F RID: 7247
		public const int lfdTimeWithTZ = 121;

		// Token: 0x04001C50 RID: 7248
		public const int lfdIntervalYear = 130;

		// Token: 0x04001C51 RID: 7249
		public const int lfdIntervalYearToMonth = 131;

		// Token: 0x04001C52 RID: 7250
		public const int lfdIntervalMonth = 132;

		// Token: 0x04001C53 RID: 7251
		public const int lfdIntervalDay = 133;

		// Token: 0x04001C54 RID: 7252
		public const int lfdIntervalDayToHour = 134;

		// Token: 0x04001C55 RID: 7253
		public const int lfdIntervalDayToMinute = 135;

		// Token: 0x04001C56 RID: 7254
		public const int lfdIntervalDayToSecond = 136;

		// Token: 0x04001C57 RID: 7255
		public const int lfdIntervalHour = 137;

		// Token: 0x04001C58 RID: 7256
		public const int lfdIntervalHourToMinute = 138;

		// Token: 0x04001C59 RID: 7257
		public const int lfdIntervalHourToSecond = 139;

		// Token: 0x04001C5A RID: 7258
		public const int lfdIntervalMinute = 140;

		// Token: 0x04001C5B RID: 7259
		public const int lfdIntervalMinuteToSecond = 141;

		// Token: 0x04001C5C RID: 7260
		public const int lfdIntervalSecond = 142;

		// Token: 0x04001C5D RID: 7261
		public const int lfdByte = 143;

		// Token: 0x04001C5E RID: 7262
		public const int lfdVarByte = 144;

		// Token: 0x04001C5F RID: 7263
		public const int lfdCharacterVarying = 145;

		// Token: 0x04001C60 RID: 7264
		public const int lfdCharVarying = 146;

		// Token: 0x04001C61 RID: 7265
		public const int lfdPeriod = 147;

		// Token: 0x04001C62 RID: 7266
		public const int lfdCharacterLargeObject = 148;

		// Token: 0x04001C63 RID: 7267
		public const int lfdGeoMetry = 150;

		// Token: 0x04001C64 RID: 7268
		public const int lfdGeoGraphy = 151;

		// Token: 0x04001C65 RID: 7269
		public const int lfdNationalCharVarying = 162;

		// Token: 0x04001C66 RID: 7270
		public const int lfdNcharVarying = 163;

		// Token: 0x04001C67 RID: 7271
		public const int lfdSet = 164;

		// Token: 0x04001C68 RID: 7272
		public const int lfdCharLargeObject = 171;

		// Token: 0x04001C69 RID: 7273
		public const int lfdDBClob = 172;

		// Token: 0x04001C6A RID: 7274
		public const int lfdInterval = 181;

		// Token: 0x04001C6B RID: 7275
		public const int lfdTypeAtribute = 107;

		// Token: 0x04001C6C RID: 7276
		public const int lfdRowTypeAtribute = 108;
	}
}
